a11y: Move update_cache to GtkCellAccesible
authorBenjamin Otte <otte@redhat.com>
Thu, 15 Dec 2011 23:07:46 +0000 (00:07 +0100)
committerBenjamin Otte <otte@redhat.com>
Fri, 16 Dec 2011 03:53:16 +0000 (04:53 +0100)
This way, we can call it for container renderers, too.

gtk/a11y/gtkbooleancellaccessible.c
gtk/a11y/gtkcellaccessible.c
gtk/a11y/gtkcellaccessible.h
gtk/a11y/gtkrenderercellaccessible.c
gtk/a11y/gtkrenderercellaccessible.h
gtk/a11y/gtktextcellaccessible.c
gtk/a11y/gtktreeviewaccessible.c

index da4dadcf2604824e6f838ad712116cf30ba7ccc5..aafd73015c012810afedf9f636d48b244a1bf347 100644 (file)
@@ -27,13 +27,13 @@ G_DEFINE_TYPE (GtkBooleanCellAccessible, _gtk_boolean_cell_accessible, GTK_TYPE_
 
 
 static void
-gtk_boolean_cell_accessible_update_cache (GtkRendererCellAccessible *cell)
+gtk_boolean_cell_accessible_update_cache (GtkCellAccessible *cell)
 {
   GtkBooleanCellAccessible *boolean_cell = GTK_BOOLEAN_CELL_ACCESSIBLE (cell);
   gboolean active;
   gboolean sensitive;
 
-  g_object_get (G_OBJECT (cell->renderer),
+  g_object_get (G_OBJECT (GTK_RENDERER_CELL_ACCESSIBLE (cell)->renderer),
                 "active", &active,
                 "sensitive", &sensitive,
                 NULL);
@@ -62,9 +62,9 @@ gtk_boolean_cell_accessible_update_cache (GtkRendererCellAccessible *cell)
 static void
 _gtk_boolean_cell_accessible_class_init (GtkBooleanCellAccessibleClass *klass)
 {
-  GtkRendererCellAccessibleClass *renderer_cell_class = GTK_RENDERER_CELL_ACCESSIBLE_CLASS (klass);
+  GtkCellAccessibleClass *cell_class = GTK_CELL_ACCESSIBLE_CLASS (klass);
 
-  renderer_cell_class->update_cache = gtk_boolean_cell_accessible_update_cache;
+  cell_class->update_cache = gtk_boolean_cell_accessible_update_cache;
 }
 
 static void
index bd3d608a6c8c2ab200843616a36c9b8b3af5b33b..3d39708ba96eb760dd28fb5d38055d407b255e60 100644 (file)
@@ -439,3 +439,31 @@ _gtk_cell_accessible_state_changed (GtkCellAccessible    *cell,
                                         state_map[i].invert);
     }
 }
+
+/**
+ * _gtk_cell_accessible_update_cache:
+ * @cell: the cell that is changed
+ *
+ * Notifies the cell that the values in the data in the row that
+ * is used to feed the cell renderer with has changed. The
+ * cell_changed function of @cell is called to send update
+ * notifications for the properties it takes from its cell
+ * renderer.
+ * 
+ * Note that there is no higher granularity available about which
+ * properties changed, so you will need to make do with this
+ * function.
+ **/
+void
+_gtk_cell_accessible_update_cache (GtkCellAccessible *cell)
+{
+  GtkCellAccessibleClass *klass;
+  
+  g_return_if_fail (GTK_CELL_ACCESSIBLE (cell));
+
+  klass = GTK_CELL_ACCESSIBLE_GET_CLASS (cell);
+
+  if (klass->update_cache)
+    klass->update_cache (cell);
+}
+
index 7fdabf5634f015c9f96c152d564c779f7b16bbbe..8cd9ca7493dd8ea7b4b784d32d2c83f24aa883ce 100644 (file)
@@ -44,6 +44,7 @@ struct _GtkCellAccessible
 struct _GtkCellAccessibleClass
 {
   AtkObjectClass parent_class;
+  void (*update_cache) (GtkCellAccessible *cell);
 };
 
 GType    _gtk_cell_accessible_get_type      (void);
@@ -54,6 +55,7 @@ void     _gtk_cell_accessible_state_changed (GtkCellAccessible *cell,
                                              GtkCellRendererState added,
                                              GtkCellRendererState removed);
 void     _gtk_cell_accessible_set_cell_data (GtkCellAccessible *cell);
+void     _gtk_cell_accessible_update_cache  (GtkCellAccessible *cell);
 
 void     _gtk_cell_accessible_initialise    (GtkCellAccessible *cell,
                                              GtkWidget         *widget,
index 3b2c399c616613edbf0dc457557ca47cc81d5e23..40ab02f2ae4d2c32c5850195f9de82de56040297 100644 (file)
@@ -103,19 +103,6 @@ _gtk_renderer_cell_accessible_init (GtkRendererCellAccessible *renderer_cell)
 {
 }
 
-void
-_gtk_renderer_cell_accessible_update_cache (GtkRendererCellAccessible *cell)
-{
-  GtkRendererCellAccessibleClass *klass;
-  
-  g_return_if_fail (GTK_IS_RENDERER_CELL_ACCESSIBLE (cell));
-
-  klass = GTK_RENDERER_CELL_ACCESSIBLE_GET_CLASS (cell);
-
-  if (klass->update_cache)
-    klass->update_cache (cell);
-}
-
 AtkObject *
 _gtk_renderer_cell_accessible_new (GtkCellRenderer *renderer)
 {
index 8c79b9a1a6c2aa903ad8ab2f93fd8dc35884d995..f7e11029df5c2613edc22a73246f8e97e47baa30 100644 (file)
@@ -44,15 +44,12 @@ struct _GtkRendererCellAccessible
 struct _GtkRendererCellAccessibleClass
 {
   GtkCellAccessibleClass parent_class;
-  void (*update_cache) (GtkRendererCellAccessible *cell);
 };
 
 GType      _gtk_renderer_cell_accessible_get_type     (void);
 
 AtkObject *_gtk_renderer_cell_accessible_new          (GtkCellRenderer * renderer);
 
-void       _gtk_renderer_cell_accessible_update_cache (GtkRendererCellAccessible *cell);
-
 G_END_DECLS
 
 #endif /* __GTK_RENDERER_CELL_ACCESSIBLE_H__ */
index b714cde004c06b5668b57022166529a7c7b28e5c..5ccc53f4d1f2c4fecae6ec483ae0fe5aef96d5d1 100644 (file)
@@ -80,7 +80,7 @@ static void             add_attr                        (PangoAttrList  *attr_li
 
 /* Misc */
 
-static void gtk_text_cell_accessible_update_cache       (GtkRendererCellAccessible *cell);
+static void gtk_text_cell_accessible_update_cache       (GtkCellAccessible *cell);
 
 static void atk_text_interface_init (AtkTextIface *iface);
 
@@ -121,7 +121,7 @@ gtk_text_cell_accessible_get_name (AtkObject *atk_obj)
 }
 
 static void
-gtk_text_cell_accessible_update_cache (GtkRendererCellAccessible *cell)
+gtk_text_cell_accessible_update_cache (GtkCellAccessible *cell)
 {
   GtkTextCellAccessible *text_cell = GTK_TEXT_CELL_ACCESSIBLE (cell);
   AtkObject *obj = ATK_OBJECT (cell);
@@ -129,7 +129,9 @@ gtk_text_cell_accessible_update_cache (GtkRendererCellAccessible *cell)
   gint temp_length;
   gchar *text;
 
-  g_object_get (G_OBJECT (cell->renderer), "text", &text, NULL);
+  g_object_get (G_OBJECT (GTK_RENDERER_CELL_ACCESSIBLE (cell)->renderer),
+                "text", &text,
+                NULL);
 
   if (text_cell->cell_text)
     {
@@ -180,9 +182,9 @@ _gtk_text_cell_accessible_class_init (GtkTextCellAccessibleClass *klass)
 {
   GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
   AtkObjectClass *atk_object_class = ATK_OBJECT_CLASS (klass);
-  GtkRendererCellAccessibleClass *renderer_cell_class = GTK_RENDERER_CELL_ACCESSIBLE_CLASS (klass);
+  GtkCellAccessibleClass *cell_class = GTK_CELL_ACCESSIBLE_CLASS (klass);
 
-  renderer_cell_class->update_cache = gtk_text_cell_accessible_update_cache;
+  cell_class->update_cache = gtk_text_cell_accessible_update_cache;
 
   atk_object_class->get_name = gtk_text_cell_accessible_get_name;
   atk_object_class->ref_state_set = gtk_text_cell_accessible_ref_state_set;
index b8717cc40af1a45de43b7c266061ad9b5334072c..3654d9772f02a284d02825249986c5fae71fd5a3 100644 (file)
@@ -1651,7 +1651,7 @@ update_cell_value (GtkRendererCellAccessible      *renderer_cell,
                                                is_expander, is_expanded);
     }
 
-  _gtk_renderer_cell_accessible_update_cache (renderer_cell);
+  _gtk_cell_accessible_update_cache (cell);
 }
 
 /* Misc Private */